The present invention generally relates to a microcontroller which executes instructions responsive to internally stored program instructions. The present invention more particularly relates to such a microcontroller wherein the microcontroller includes a static random access memory for internally storing the program instructions and a program interface for obtaining the program instructions from an external source and storing the program instruction in the static random access memory. The present invention still more particularly relates to such a microcontroller wherein the external source of the program instructions is a microprocessor and wherein the microcontroller is arranged to operate as a slave with respect to the microprocessor.
Microcontrollers for use in association with microprocessors and which operate as slave devices with respect to such microprocessors are well known in the art. Such microcontrollers perform instruction executions in response to program instructions residing in internal memory. However, such executions are initiated through commands received from the microprocessors. Hence, such microcontrollers are slaves to the microprocessors because, although they execute instructions dictated by their own set of program instructions, they do so on command from the microprocessors.
The memories employed in present microcontrollers for storing the program instructions take the form of either read only memories or erasable programmable read only memories. Read only memories are memories wherein data, such as program instructions, are permanently stored in the memory. Once such a memory is programmed, the memory cannot thereafter be updated or modified. Erasable programmable read only memories are memories wherein the stored data is not permanently stored, but can be electronically updated or modified. Such data memory modification or programming must be performed by separate external programming equipment.
While such read only memories and erasable programmable read only memories have been generally successful in providing program instructions to the microcontrollers in which they are used, they have exhibited some limitations. One primary limitation has been that the microcontrollers which use these memories are limited for a particular format of instruction code, and hence, only one application. Hence, a microcontroller using a read only memory will not be suitable for use with any other microprocessor other than the particular type of microprocessor that the read only memory was programmed to be used with. A completely new microcontroller with a new read only memory would be required if program instruction modification or updating was necessitated by an updated microprocessor, for example.
In the case of erasable programmable read only memories, if it is desired to use a microcontroller incorporating such a memory with a different type of microprocessor or an updated version of the microprocessor for which the erasable programmable read only memory was originally programmed to be compatible with, the microcontroller would have to be physically removed from its system and then the memory reprogrammed by an external and separate electronic programmer.
The microcontroller of the present invention overcomes these noted limitations of prior art microcontrollers by providing a microcontroller which utilizes a static random access memory instead of a read only memory or an erasable programmable read only memory. While a static random access memory is a volatile memory in that it must be reprogrammed each time the microcontroller and the system utilizing the static random access memory based microcontroller is initialized, because microcontrollers generally operate as slave devices to a microprocessor, the microprocessor can serve as an external programming source for providing the static random access memory with program instructions. Most microprocessors have a large amount of memory space, usually provided by dynamic random access memories. As a result, the amount of memory space for maintaining the microcontroller program instructions represent only a small portion of the microprocessor memory. Also, the time required to program the static random access memory is relatively short and adds only a small amount of time to the initialization time required for the microprocessor to run its standard checks of memory, et cetera, upon initialization. Hence, the microcontroller of the present invention allows its program instructions to be maintained in external memory. Also, should a different microprocessor be selected for operating with the microcontroller, the static random access memory of the microcontroller can be programmed by the new microprocessor so as to be compatible with the new microprocessor.
As will be seen hereinafter, the microcontroller of the present invention includes a program interface which addresses the static random access memory and obtains the program instructions from the microprocessor for programming the static random access memory with the operating instructions. The microcontroller of the present invention also includes a program verifier to enable the program instructions stored in the static random access memory to be verified by the microprocessor after programming has been completed.
The invention provides, in a microcontroller of the type which includes an execution unit for executing stored program instructions, a memory system for storing the program instructions and including a memory for storing the program instructions, the memory including a static random access memory, and a program interface coupled to the static random access memory and arranged to be coupled to an external source of the program instructions for programming the static random access memory by providing the static random access memory with the program instructions from the external source of the program instructions.
The present invention further provides a microcontroller of the type adapted to be coupled to a microprocessor and arranged to operate as a slave to the microprocessor wherein the microcontroller is of the type which includes an execution unit for executing its own set of program instructions and includes a memory system for obtaining the program instructions from the microprocessor and internally storing the program instructions. The microcontroller includes a static random access memory having a plurality of addressable storage locations for storing the program instructions and a programmer coupled to the static random access memory and arranged to be coupled to the microprocessor for obtaining the program instructions from the microprocessor. The programmer includes an address generator for addressing the storage locations and storing the program instructions within the storage locations of the static random access memory.